// pages/addZJJL/index.js

import {colors} from '../../utils/constData'

import {
  allTypeByTree
} from '../../utils/api/zhichu'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 主题颜色
    color: colors[1],
    // 备注输入框大小
    autosize: {
      maxHeight: 100,
      minHeight: 50
    },
    // 需要提交的数据-----------
    form: {
      //onLoad初始化
      typeSelect: [],
      result: [],
      date: '',
      money: '',
      message: '',
    },
    // 第一选择框数据配置---------------
    // 元数据
    typeOldList: [],
    // 类别数据源
    typeList: [{
        title: '一级类别',
        select: '',
        list: [],
      },
      {
        title: '二级类别',
        select: '',
        list: [],
      }
    ],

    // 第二展示框数据配置-------------------

    // 共享选择数据
    gongXList: [
      '不共享', '老婆', '大姨'
    ],
  },
  // typeTree
  async typeByTree() {
    const res = await allTypeByTree({})
    //一级类型数据
    let list = []
    //二级类型数据
    let listChange = []
    res.forEach((item, index) => {
      list.push({
        ...item,
        childs: undefined
      })
      if (index === 0) {
        item.childs.forEach(ite => {
          listChange.push({
            ...ite,
            childs: null
          })
        })
      }
    })
    this.setData({
      typeOldList: res,
      ['typeList[0].list']: list,
      ['typeList[1].list']: listChange,

    })
  },
  /**共享选择组件返回值 */
  selectFn(e) {
    this.setData({
      ['form.result']: e.detail
    })
  },
  /**支出日期组件返回值 */
  confirmDate(e) {
    this.setData({
      ['form.date']: e.detail
    })
  },
  /**输入支出金额 */
  bindKeyInput: function (e) {
    this.setData({
      money: e.detail.value
    })
  },

  /**选择类别
   * 返回pageIndex组件索引和item对象
   * 修改 显示选中typeList  和表单数据form.typeSelect
   */
  sendMsg(e) {
    const {
      data,
      pageIndex
    } = e.detail
    const key = `typeList[${pageIndex}].select`
    const formKey = `form.typeSelect[${pageIndex}]`
    this.setData({
      [key]: data,
      [formKey]: data
    })
    //如果选择一级类型  则需要重置二级类型
    if (pageIndex === 0) {
      let list = this.data.typeOldList.filter(item => item.code === data.code)[0].childs
      list.map(item => item.childs = undefined)
      this.setData({
        ['typeList[1].select']: '',
        ['form.typeSelect[1]']: '',
        ['typeList[1].list']: list
      })
    }
  },
  /**提交 */
  save() {
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 初始化选择类型
    this.setData({
      ['form.typeSelect']: new Array(this.data.typeList.length)
    })
    this.typeByTree()
  },
})